package com.guodi.model.dto.resp;

import lombok.Data;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

/**
 * @描述: 动态评估模型获取结果, 返回dto
 * @作者: 余家鑫
 * @日期: 2022/3/11 下午2:47
 */
@Data
public class DynamicEvaluationModelGetRespDTO implements Serializable {
    private static final long serialVersionUID = 9049431450122330542L;

    /**
     * 近三年情况
     */
    private List<YearData> nearly3YearDatas;

    /**
     * 查询条件下, 该年份, 该区划下一级区划的数据
     */
    private List<DivisionData> divisionDatas;

    /**
     * 超载情况
     */
    private OverloadCondition overloadCondition;

    /**
     * @描述: 超载情况返回结果
     * @作者: 余家鑫
     * @日期: 2022/3/11 下午2:49
     */
    @Data
    public static class OverloadCondition implements Serializable{
        private static final long serialVersionUID = 2631620161607231490L;

        /**
         * 区划编码
         */
        private String divisionCode;

        /**
         * 区划名称
         */
        private String divisionName;

        /**
         * 统计信息列表
         */
        private List<StatisticInfo> statisticInfos;

        /**
         * 下级节点
         */
        private List<OverloadCondition> children;

        public static OverloadCondition getEmptyInstance(String divisionCode, String divisionName) {
            OverloadCondition instance = new OverloadCondition();
            instance.setDivisionName(divisionName);
            instance.setDivisionCode(divisionCode);
            instance.setStatisticInfos(Collections.emptyList());
            instance.setChildren(Collections.emptyList());
            return instance;
        }

    }

    /**
     * @描述: 统计情况
     * @作者: 余家鑫
     * @日期: 2022/3/11 下午2:50
     */
    @Data
    public static class StatisticInfo{
        /**
         * 统计值名称
         */
        private String name;

        /**
         * 统计值
         */
        private String value;
    }

    /**
     * @描述: 年数据
     * @作者: 余家鑫
     * @日期: 2022/3/11 下午4:21
     */
    @Data
    public static class YearData implements Serializable{
        private static final long serialVersionUID = 52657805697199258L;

        /**
         * 年份
         */
        private String year;

        /**
         * 统计信息列表
         */
        private List<StatisticInfo> statisticInfos;

    }

    /**
     * @描述: 区划数据
     * @作者: 余家鑫
     * @日期: 2022/3/11 下午5:31
     */
    @Data
    public static class DivisionData implements Serializable{
        private static final long serialVersionUID = 52657805697199258L;

        /**
         * 区划编码
         */
        private String divisionCode;

        /**
         * 区划名称
         */
        private String divisionName;

        /**
         * 统计信息列表
         */
        private List<StatisticInfo> statisticInfos;

    }


}
